home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 076-100 / disk_097 / shm / shm_menu.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  4KB  |  231 lines

  1. /************************************************************************
  2.                              shm_menu                       9th August 87
  3. ************************************************************************/
  4.  
  5. /*  |----------|------------|--------------|
  6.     | Controls | Parameters | Colours      |
  7.     |   Draw   |   Settings |   Palette    |
  8.     |   Halt   |            |   Cycle Time |
  9.     |   Reset  |            |              |
  10.     |   Cycle  |            |              |
  11.     |   Erase  |            |              |
  12.     |   Manual |            |              |
  13.     |   Future |            |              |
  14.     |   Quit   |            |              |
  15.     |----------|------------|--------------|
  16.  
  17. Controls menu mutual exclusion codes
  18.  
  19.        Q F M E C R H D
  20.      D 1 1 1 1 1 1 1 0 FE
  21.      H 1 1 1 1 1 1 0 1 FD
  22.      R 1 1 1 1 1 0 0 1 F9
  23.      C 1 1 1 1 0 1 1 1 F7
  24.      E 1 1 1 0 1 0 0 1 E9
  25.      M 1 0 0 0 0 0 0 0 80
  26.      F 1 0 0 0 0 0 0 0 80 
  27.      Q 0 1 1 1 1 1 1 1 7F
  28. */
  29.   
  30. #include "exec/types.h"
  31. #include "intuition/intuition.h"
  32.  
  33. extern struct TextAttr Fnt;
  34.  
  35. struct IntuiText menu_quit_txt =
  36. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Quit " };
  37.  
  38. struct MenuItem menu_quit =
  39. {
  40. NULL,
  41. 0, 63, (75 + CHECKWIDTH + COMMWIDTH), 9,
  42. (CHECKIT | ITEMTEXT | COMMSEQ |
  43. ITEMENABLED | HIGHBOX),
  44. 0x7F,
  45. (APTR) &menu_quit_txt,
  46. NULL,
  47. 'Q',
  48. NULL
  49. };
  50.  
  51. struct IntuiText menu_future_txt =
  52. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Future " };
  53.  
  54. struct MenuItem menu_future =
  55. {
  56. &menu_quit,
  57. 0, 54, (75 + CHECKWIDTH + COMMWIDTH), 9,
  58. (ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX),
  59. 0x80,
  60. (APTR) &menu_future_txt,
  61. NULL,
  62. 'F',
  63. NULL
  64. };
  65.  
  66. struct IntuiText menu_manual_txt =
  67. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Manual " };
  68.  
  69. struct MenuItem menu_manual =
  70. {
  71. &menu_future,
  72. 0, 45, (75 + CHECKWIDTH + COMMWIDTH), 9,
  73. (ITEMTEXT | COMMSEQ | ITEMENABLED | HIGHBOX),
  74. 0x80,
  75. (APTR) &menu_manual_txt,
  76. NULL,
  77. 'M',
  78. NULL
  79. };
  80.  
  81. struct IntuiText menu_erase_txt =
  82. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Erase " };
  83.  
  84. struct MenuItem menu_erase =
  85. {
  86. &menu_manual,
  87. 0, 36, (75 + CHECKWIDTH + COMMWIDTH), 9,
  88. (CHECKIT | ITEMTEXT | COMMSEQ |
  89. ITEMENABLED | HIGHBOX),
  90. 0xE9,
  91. (APTR) &menu_erase_txt,
  92. NULL,
  93. 'E',
  94. NULL
  95. };
  96.  
  97. struct IntuiText menu_cycle_txt =
  98. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Cycle " };
  99.  
  100. struct MenuItem menu_cycle =
  101. {
  102. &menu_erase,
  103. 0, 27, (75 + CHECKWIDTH + COMMWIDTH), 9,
  104. (CHECKIT | ITEMTEXT | COMMSEQ |
  105. ITEMENABLED | HIGHBOX),
  106. 0xF7,
  107. (APTR) &menu_cycle_txt,
  108. NULL,
  109. 'C',
  110. NULL
  111. };
  112. struct IntuiText menu_reset_txt =
  113. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Reset " };
  114.  
  115. struct MenuItem menu_reset =
  116. {
  117. &menu_cycle,
  118. 0, 18, (75 + CHECKWIDTH + COMMWIDTH), 9,
  119. (CHECKIT | ITEMTEXT | COMMSEQ |
  120. ITEMENABLED | HIGHBOX),
  121. 0xF9,
  122. (APTR) &menu_reset_txt,
  123. NULL,
  124. 'R',
  125. NULL
  126. };
  127.  
  128. struct IntuiText menu_halt_txt =
  129. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Halt " };
  130.  
  131. struct MenuItem menu_halt =
  132. {
  133. &menu_reset,
  134. 0, 9, (75 + CHECKWIDTH + COMMWIDTH), 9,
  135. (CHECKIT | ITEMTEXT | COMMSEQ |
  136. ITEMENABLED | HIGHBOX),
  137. 0xFD,
  138. (APTR) &menu_halt_txt,
  139. NULL,
  140. 'H',
  141. NULL
  142. };
  143.  
  144. struct IntuiText  menu_draw_txt =
  145. { 0, 1, JAM2,CHECKWIDTH, 0, &Fnt,"Draw " };
  146.  
  147. struct MenuItem menu_draw =
  148. {
  149. &menu_halt,
  150. 0, 0, (75 + CHECKWIDTH + COMMWIDTH), 9,
  151. (CHECKIT | CHECKED | ITEMTEXT | COMMSEQ |
  152. ITEMENABLED | HIGHBOX),
  153. 0xFE,
  154. (APTR) &menu_draw_txt,
  155. NULL,
  156. 'D',
  157. NULL
  158. };
  159.  
  160. struct IntuiText menu_settings_txt =
  161. { 0, 1, JAM2, 0, 0, &Fnt,"Settings " };
  162.  
  163. struct MenuItem menu_settings =
  164. {
  165. NULL,
  166. 0, 0, 100, 9,
  167. (ITEMTEXT | ITEMENABLED | HIGHBOX),
  168. NULL,
  169. (APTR) &menu_settings_txt,
  170. NULL,
  171. NULL,
  172. NULL
  173. };
  174.  
  175. struct IntuiText menu_cycle_time_txt =
  176. { 0, 1, JAM2, 0, 0, &Fnt,"Cycle Time " };
  177.  
  178. struct MenuItem menu_cycle_time =
  179. {
  180. NULL,
  181. 0, 9, 80, 9,
  182. (ITEMTEXT | ITEMENABLED | HIGHBOX),
  183. NULL,
  184. (APTR) &menu_cycle_time_txt,
  185. NULL,
  186. NULL,
  187. NULL
  188. };
  189.  
  190. struct IntuiText menu_palette_txt =
  191. { 0, 1, JAM2, 0, 0, &Fnt,"Palette " };
  192.  
  193. struct MenuItem menu_palette =
  194. {
  195. &menu_cycle_time,
  196. 0, 0, 80, 9,
  197. (ITEMTEXT | ITEMENABLED | HIGHBOX),
  198. NULL,
  199. (APTR) &menu_palette_txt,
  200. NULL,
  201. NULL,
  202. NULL
  203. };
  204.  
  205. struct Menu Menu[3] =
  206. {
  207.      { /* Menu[0] : Controls */
  208.     &Menu[1],
  209.     0,0,(75+CHECKWIDTH+COMMWIDTH),0,
  210.     MENUENABLED,
  211.     "Controls",
  212.     &menu_draw
  213.      },
  214.      { /* Menu[1] : Parameters */
  215.     &Menu[2],
  216.     (76+CHECKWIDTH+COMMWIDTH),0,100,0,
  217.     MENUENABLED,
  218.     "Parameters",
  219.     &menu_settings
  220.       },
  221.      { /* Menu[2] : Colours */
  222.     NULL,
  223.     (177+CHECKWIDTH+COMMWIDTH),0,80,0,
  224.     MENUENABLED,
  225.     "Colours",
  226.     &menu_palette
  227.       }
  228. };
  229.  
  230. struct Menu *SHMenu = &Menu[0];
  231.